/**
 * @param {string} s
 * @return {number}
 */
var countSubstrings = function (s) {
  //计数器：统计回文子串的个数
  let count = 0
  /* 
     1. 回文串一定是围绕某个“中心”对称的。
     2. 字符串长度为 n，最多有 2n - 1 个中心点（因为中心点可以是某个字符，也可以是两个字符之间的间隙）。
     3. 对每个中心点进行向左右扩展，统计所有回文子串。 
  */
  function expandAroundCenter(left, right) {
    while (left >= 0 && right <= s.length - 1 && s[left] === s[right]) {
      count++
      left--
      right++
    }
  }

  for (let i = 0; i < s.length; i++) {
    expandAroundCenter(i, i)
    expandAroundCenter(i, i + 1)
  }

  //返回计数器
  return count
};